Skip to content

Developer FAQs

Do you have an SDK or sample code for working with EHR.Network APIs?

We provide multiple free tools to enable developers to work with our platform APIs

  1. OpenAPI 3.0 specifications - Our API documentation follows the OpenAPI 3.0 standards. You can download the specification YML file from the respective documentation pages and use OpenAPI tools such as Postman & Stoplight to create language specific SDKs, mock servers etc.
  2. Java appServer framework - We have created a Java based application server framework that implements many generic functionality used by digital health applications. We make this available free to developers working with us.
  3. Developer tools git repository - We maintain a git repository with free tools and resources for developers working with our APIs

How do I find a list of the templates and the corresponding composition examples supported by EHR.network?

Templates in EHR.Network constitute the data schema of our Clinical Data repository(CDR). There are 2 ways you can get the list of templates supported by EHR.Network

  1. Get all templates API in the EHR APIs.
  2. We have a list of templates in the developer tools gitlab repository

We also provide a list of sample compositions for each of the templates in the above GIT repository.

How do I retrieve the summary clinical data for a person?

Summary clinical data is used to provide a snapshot of the health of a person and can include information such as their allergies, current medications, problem list etc. You can implement AQL queries to retrieve the summary data, as per the needs of your application.

You may use filters such as date range, status etc. to retrieve the summary data that meets your requirements. During the implementation phase, we can help you implement these as stored queries for convenience and ease of use within the application.

What is the purpose of the relationship array in person?

Relationship array contains a list of the person's relationship to other persons' on the platform. This array can be used by your application to build and maintain a family hierarchy for the person.

However, please note that while creating this relationship under one person, the platform does not automatically add a reciprocal relationship under the other person. You will need to create the relationships separately for each person.

Can I retrieve all persons in an organization?

Yes, you can retrieve all persons in an organization using the Get all persons API

However, we recommend that this API is used with caution as it can return a large amount of data sometimes.

What are virtual folders? Is that correct to assume that they represent visits, encounters or episodes?

Virtual folders provide a means to group clinical data sets(compositions) as per the requirements of different applications. They contain IDs of the compositions and not the actual data. The same composition can exist in multiple virtual folders at the same time and you may add/delete compositions to a virtual folder at any time.

For ease of understanding, you can look at the file that is used to store all your physical health records. While the entire patient file represents the EHR of the patient, inside that there will be a set of documents representing each encounter or visit. Alternatively you may also maintain separate folders representing a clinical episode such as a pregnancy or even a folder for all clinical data associated with a problem such as Diabetes or Cancer.

Virtual folders implement the same functionality within an EHR system. You may use them to create a longitudinal encounter list, to group all data for a healthcare episode or event to manage the problem oriented medical record (POMR) of the patient.

How should the virtual folders be structured?

Virtual folders allow a hierarchy structure. You may use it to build a tree structure for a longitudinal view of the patient's clinical encounters or a collection of independent folders representing isolated episodes or problems.

You may also create complex structures such an episode containing multiple encounters or a POMR containing multiple episodes of care inside it (a diabetic POMR with discrete hospitalization episodes)

I could have multiple compositions in a virtual folder, and then have a tree structure for the virtual folder itself as well. Can you help with some use cases for both these things?

Let us take the use case of a patient’s visit to a dermatologist for the Acne treatment. The virtual folder can be created as follows:

  • First visit(parent) - In the initial encounter the doctor prescribes medications and asks to follow up after 15days for the same. These are recorded as compositions and linked to the parent virtual folder.
  • Follow-up visit(child) - Follow-up encounter is created as a child to the previous visit as the Doctor will decide the next treatment based on the previous visit and how the treatment worked on the patient's skin. The compositions created in this encounter are linked to the child folder

Further parent folders are created for subsequent visits and all of these can go inside an Acne POMR of the patient.

For each past lab result, should there be a virtual folder for that date? Or should I club all past lab results in one virtual folder?

Virtual folder gives you the flexibility to club all past lab reports together or segregate them in different ways.

As a best practice, it would be better to add the corresponding lab report composition to the virtual folder representing that particular encounter. This allows the creation of a timeline view of the patient's encounters.

Alternatively, you may add all reports to a past records folder in the beginning and later regroup them into the appropriate virtual folders as per the business needs of your application.

For lab (pathology) results, should I create a composition for each of the reports?

You can design lab results templates to represent each independent analyte or the entire test panel. The best practice is to use the lab panel template to capture the entire lab panel report in the same composition.

You may also record multiple panel reports as clusters inside the same composition. However this may make the UI design very complex.

I would want to run trend analysis on some parameters. E.g. I could take cholesterol, HDL, LDL, TG and want to plot them all in one graph across the dates. How will I retrieve these from the individual compositions?

This is a very powerful feature of the EHR.Network CDR, owing to it’s compliance to openEHR standards. By executing proper AQLs, you can fetch the date required by your reports in flexible ways. You may use filters such as date range to control the data that the CDR returns.


Last update: 2022-12-02