Search code examples
javascriptarraysrestmirthopenmrs

How to POST multiple observations through REST in OpenMRS


When I am sending a single observation then it is getting created but for multiple observations it is throwing an error 500.

For single observations my query is -

TYPE- POST
URI - /openmrs-standalone/ws/rest/v1/obs
BODY-
{ 
"concept" : "5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"person" : "610b0696-7529-4b4a-b65b-37336a75962a",
"obsDatetime": "2017-07-24T15:33:49+05:30",
"encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
"value" : "90"
}

For multiple I am sending
TYPE- POST
URI - /openmrs-standalone/ws/rest/v1/obs
BODY-
[{"concept" : "5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
"person" : "610b0696-7529-4b4a-b65b-37336a75962a",
"obsDatetime": "2017-07-24T15:33:49+05:30",
"encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
"value" : "99"
},
{
"concept" : "5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"person" : "610b0696-7529-4b4a-b65b-37336a75962a",
"obsDatetime": "2017-07-24T15:33:49+05:30",
"encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
"value" : "185"
}]

The error is here https://pastebin.com/uBaJmZa9


Solution

  • I found out that to add observation array, it needs to be packaged inside encounter and the request should to openMRS should contain Headers of Authorizaiton:Basic = UTF8Format(Username:password) and Set-Cookie = JSESSIONID=${sessionId}

    The message format should be

    {"patient": "${uuid}",
     "encounterType" : "67a71486-1a54-468f-ac3e-7091a9a79584", 
     "location":"${locationUUID}",
     "form":"a000cb34-9ec1-4344-a1c8-f692232f6edd",
     "visit":"${encVisitUUID}",
     "obs":[{"concept" : "5242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
    "person" : "${uuid}",
    "encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
    "value" : "${RR}"
    },
    {"concept" : "5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
    "person" : "${uuid}",
    "encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
    "value" : "${sysBP}"
    },
    {"concept" : "5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
    "person" : "${uuid}",
    "encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
    "value" : "${diaBP}"
    },
    
    {"concept" : "5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
    "person" : "${uuid}",
    "encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
    "value" : "${Pulse}"
    },
    {"concept" : "5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
    "person" : "${uuid}",
    "encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
    "value" : "${T}"
    },
    {"concept" : "5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
    "person" : "${uuid}",
    "encounter": "3bc0672d-ebc6-4e65-aae1-8a1d4de759bf",
    "value" : "${BO}"
    }]
    

    }