# Performance of API Design for Interoperability of Medical Information Systems
## 2 Related Work
### Application Programming Interface Challenges  
An application programming interface (API) is a set of rules and tools that allows different software applications to communicate with each other [23]. APIs define the methods and data that developers can use to integrate different software components. From the viewpoint of the involved systems, the API is seen as a black box since it hides its internal structure. However, it provides access to a set of procedures and functions designed to establish interoperability between devices, platforms, and information systems. According to [PERSON] [24], a RESTful API is based on the architectural principles of representational state transfer (REST). These principles include representing resources through URLs using standard HTTP operations (GET, POST, PUT, DELETE) to interact with those resources, and transferring representations of resources, typically in the JSON or XML format.  
In the work by [PERSON] [25], the \"imaging framework\" is presented as a solution to tackle the challenges of interoperability and extensibility in Java frameworks related to image processing tasks. The modular and extensible nature of Java, its platform independence, and broad support across various operating systems make it a versatile choice for image-related tasks. Additionally, Java's support for GPU-accelerated frameworks contributes to the efficient execution of complex image processing and computer vision algorithms. Despite Python's popularity in these fields, Java boasts a robust and extensive community. In the realm of API development with Java, [PERSON] [26] analyzed the features of various languages that interoperate with Java. The highlighted benefits include syntax similarities and agreements on object-oriented programming principles, facilitating interoperability, [PERSON]'s main proposal focuses on solution development, particularly with the \"wrapper\" design pattern to execute Java code in Eolang. It was emphasized that the ability to support certain syntax is the fundamental mechanism for developing interoperability. Furthermore, expanding the atom set, including Java wrappers, is suggested as a promising perspective for Eolang in terms of interoperability.  
Despite the existence of standards for data interoperability in the medical field, as mentioned earlier, persistent situations must be considered. Heterogeneity at the hardware and software levels implies that medical hubs can range from devices as small as a cell phone to cloud-integrated systems. Another challenge is the indeterminate number of transactions that may occur in each query, demanding efficient memory management. Therefore, APIs, which serve as the central core in interoperability frameworks, must be portable and capable of dynamically and efficiently handling an indefinite number of transactions. In this proposal, an API was designed under the semantics of the HL7-CDA substandard version 3. The proposed architecture adopted a dynamic memory approach using object-oriented design patterns to optimize the efficiency. The integration of wrapper and abstract factory design patterns for managing medical record information is crucial. This approach optimized the memory and time resources, enhancing the efficiency for object construction during execution in heterogeneous environments.