dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #52057
Re: trackedEntityInstances SYNC
Hi Tomas,
Sorry for a delay.
So here is my summary:
To me, the API functionality looks OK. The problem is with your payload, as
well as what you want to achieve. So the explanation:
1. Your payload: In the payload, you are sending 3 enrollments and not 2. 1
enrollment has status COMPLETED, but 2 other have status ACTIVE. Therefore,
you are getting following error message: "TrackedEntityInstance F1JYlcimPjV
already has an active enrollment in program ur1Edk5Oe2n"
You cannot have 2 active enrollments in the same program (at least not in
this one).
2. OK, I took away 1 ACTIVE enrollment and so I have only 2 enrollments in
my payload (1 ACTIVE and 1 COMPLETED). I tried to send a request while they
were not deleted yet. SUCCESS. Then, I deleted both of them (I had to first
delete events, only then I could delete enrollments -> again, correct
behavior, also, I had to reopen the COMPLETED event in order to be able to
delete an event -> again, the behavior makes sense to me). And now, when
the enrollments were deleted, I tried to import them with status ACTIVE and
COMPLETED. This of course fails. The error messages were the following:
...
"enrollments": {
"responseType": "ImportSummaries",
"status": "ERROR",
"imported": 0,
"updated": 0,
"deleted": 0,
"ignored": 2,
"importSummaries": [
{
"responseType": "ImportSummary",
"status": "ERROR",
"description": "Enrollment x53gNgbelvb already
exists or was deleted earlier",
"importCount": {
"imported": 0,
"updated": 0,
"ignored": 1,
"deleted": 0
},
"reference": "x53gNgbelvb"
},
{
"responseType": "ImportSummary",
"status": "ERROR",
"description": "Enrollment RuaXyGyfUXf already
exists or was deleted earlier",
"importCount": {
"imported": 0,
"updated": 0,
"ignored": 1,
"deleted": 0
},
"reference": "RuaXyGyfUXf"
}
],
"total": 2
...
And this is again a correct behavior. The user deleted the enrollments. But
DHIS2 keep track of already used UIDs. The enrollments were deleted and
DHIS2 don't allow to "un-delete"/re-import them. So to me, everything is
fine. If you want to add enrollments, you can create new ones. But you
cannot reuse UIDs of the enrollments that were already deleted.
Hope, the answer is clear.
P.S.: The mailing list will be shut down soon, please, for the next
questions, use the new tool: https://community.dhis2.org/
On Tue, Nov 6, 2018 at 5:56 PM, Tomas Sala <tomas.sala@xxxxxxxxxxxxxxxxx>
wrote:
> Hello Dávid,
>
>
>
>
>
> I created a TEI in the demo server with two enrollments (one ACTIVE and
> other COMPLETED), I deleted the enrollments and I tried to import this
> payload with this API call:
>
>
>
> https://play.dhis2.org/2.30/api/trackedEntityInstances?strategy=SYNC
>
>
>
>
>
> I got the same ignored issue:
>
>
>
> "responseType": "ImportSummary",
>
> "status": "ERROR",
>
> "description": "TrackedEntityInstance
> hhO3vubtIma already has an active enrollment in program ur1Edk5Oe2n",
>
> "importCount": {
>
> "imported": 0,
>
> "updated": 0,
>
> "ignored": 1,
>
> "deleted": 0
>
>
>
> PAYLOAD:
>
>
>
> {
> *"created"*:"2018-11-05T10:26:56.542",
> *"orgUnit"*:"DiszpKrYNg8",
> *"createdAtClient"*:"2018-11-06T16:41:52.442",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"lastUpdated"*:"2018-11-06T16:41:52.442",
> *"trackedEntityType"*:"nEenWmSyUEp",
> *"lastUpdatedAtClient"*:"2018-11-06T16:41:52.442",
> *"inactive"*:false,
> *"deleted"*:false,
> *"featureType"*:"NONE",
> *"programOwners"*:[
> {
> *"ownerOrgUnit"*:"ImspTQPwCqd",
> *"program"*:"ur1Edk5Oe2n",
> *"trackedEntityInstance"*:"hhO3vubtIma"
> }
> ],
> *"enrollments"*:[
> {
> *"storedBy"*:"admin",
> *"created"*:"2018-11-06T16:40:59.955",
> *"orgUnit"*:"ImspTQPwCqd",
> *"createdAtClient"*:"2018-11-06T16:40:59.955",
> *"program"*:"ur1Edk5Oe2n",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"EyoT6jskQAX",
> *"lastUpdated"*:"2018-11-06T16:41:22.565",
> *"trackedEntityType"*:"nEenWmSyUEp",
> *"lastUpdatedAtClient"*:"2018-11-06T16:41:22.565",
> *"orgUnitName"*:"Sierra Leone",
> *"enrollmentDate"*:"2018-11-06T00:00:00.000",
> *"completedDate"*:"2018-11-06T16:41:22.552",
> *"deleted"*:false,
> *"incidentDate"*:"2018-11-06T00:00:00.000",
> *"completedBy"*:"admin",
> *"status"*:"COMPLETED",
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ],
> *"attributes"*:[
>
> ],
> *"events"*:[
> {
> *"storedBy"*:"admin",
> *"dueDate"*:"2018-11-06T00:00:00.000",
> *"createdAtClient"*:"2018-11-06T16:41:00.743",
> *"program"*:"ur1Edk5Oe2n",
> *"event"*:"zoW7ej6wv1B",
> *"programStage"*:"ZkbAXlQUYJG",
> *"orgUnit"*:"ImspTQPwCqd",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"EyoT6jskQAX",
> *"enrollmentStatus"*:"COMPLETED",
> *"status"*:"SCHEDULE",
> *"orgUnitName"*:"Sierra Leone",
> *"lastUpdatedAtClient"*:"2018-11-06T16:41:00.781",
> *"attributeCategoryOptions"*:"xYerKDKCefk",
> *"lastUpdated"*:"2018-11-06T16:41:00.781",
> *"created"*:"2018-11-06T16:41:00.743",
> *"deleted"*:false,
> *"attributeOptionCombo"*:"HllvX50cXC0",
> *"dataValues"*:[
>
> ],
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ]
> }
> ]
> },
> {
> *"storedBy"*:"admin",
> *"created"*:"2018-11-06T16:41:52.128",
> *"orgUnit"*:"ImspTQPwCqd",
> *"createdAtClient"*:"2018-11-06T16:41:52.128",
> *"program"*:"ur1Edk5Oe2n",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"WghdhVHnRpy",
> *"lastUpdated"*:"2018-11-06T16:41:52.442",
> *"trackedEntityType"*:"nEenWmSyUEp",
> *"lastUpdatedAtClient"*:"2018-11-06T16:41:52.442",
> *"orgUnitName"*:"Sierra Leone",
> *"enrollmentDate"*:"2018-11-06T00:00:00.000",
> *"deleted"*:false,
> *"incidentDate"*:"2018-11-06T00:00:00.000",
> *"status"*:"ACTIVE",
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ],
> *"attributes"*:[
>
> ],
> *"events"*:[
> {
> *"storedBy"*:"admin",
> *"dueDate"*:"2018-11-06T00:00:00.000",
> *"createdAtClient"*:"2018-11-06T16:41:52.422",
> *"program"*:"ur1Edk5Oe2n",
> *"event"*:"awBRcZTrYeh",
> *"programStage"*:"ZkbAXlQUYJG",
> *"orgUnit"*:"ImspTQPwCqd",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"WghdhVHnRpy",
> *"enrollmentStatus"*:"ACTIVE",
> *"status"*:"SCHEDULE",
> *"orgUnitName"*:"Sierra Leone",
> *"lastUpdatedAtClient"*:"2018-11-06T16:41:52.440",
> *"attributeCategoryOptions"*:"xYerKDKCefk",
> *"lastUpdated"*:"2018-11-06T16:41:52.440",
> *"created"*:"2018-11-06T16:41:52.422",
> *"deleted"*:false,
> *"attributeOptionCombo"*:"HllvX50cXC0",
> *"dataValues"*:[
>
> ],
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ]
> }
> ]
> },
> {
> *"storedBy"*:"system",
> *"created"*:"2018-11-05T10:26:56.720",
> *"orgUnit"*:"DiszpKrYNg8",
> *"createdAtClient"*:"2018-11-05T10:26:56.720",
> *"program"*:"WSGAb5XwJ3Y",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"XIPQpWx7LY4",
> *"lastUpdated"*:"2018-11-05T10:27:59.325",
> *"trackedEntityType"*:"nEenWmSyUEp",
> *"lastUpdatedAtClient"*:"2018-11-05T10:27:59.325",
> *"orgUnitName"*:"Ngelehun CHC",
> *"enrollmentDate"*:"2018-11-05T00:00:00.000",
> *"followup"*:false,
> *"deleted"*:false,
> *"incidentDate"*:"2018-11-05T00:00:00.000",
> *"status"*:"ACTIVE",
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ],
> *"attributes"*:[
>
> ],
> *"events"*:[
> {
> *"storedBy"*:"system",
> *"dueDate"*:"2018-11-05T00:00:00.000",
> *"createdAtClient"*:"2018-11-05T10:26:57.271",
> *"program"*:"WSGAb5XwJ3Y",
> *"event"*:"t3PcuYySRHx",
> *"programStage"*:"WZbXY0S00lP",
> *"orgUnit"*:"DiszpKrYNg8",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"XIPQpWx7LY4",
> *"enrollmentStatus"*:"ACTIVE",
> *"status"*:"ACTIVE",
> *"orgUnitName"*:"Ngelehun CHC",
> *"lastUpdatedAtClient"*:"2018-11-05T10:26:57.294",
> *"eventDate"*:"2018-11-05T00:00:00.000",
> *"attributeCategoryOptions"*:"xYerKDKCefk",
> *"lastUpdated"*:"2018-11-05T10:26:57.294",
> *"created"*:"2018-11-05T10:26:57.271",
> *"followup"*:false,
> *"deleted"*:false,
> *"attributeOptionCombo"*:"HllvX50cXC0",
> *"dataValues"*:[
>
> ],
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ]
> },
> {
> *"storedBy"*:"system",
> *"dueDate"*:"2018-11-05T00:00:00.000",
> *"createdAtClient"*:"2018-11-05T10:27:21.003",
> *"program"*:"WSGAb5XwJ3Y",
> *"event"*:"ZFLj4VyFdlr",
> *"programStage"*:"PUZaKR0Jh2k",
> *"orgUnit"*:"DiszpKrYNg8",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"XIPQpWx7LY4",
> *"enrollmentStatus"*:"ACTIVE",
> *"status"*:"SCHEDULE",
> *"orgUnitName"*:"Ngelehun CHC",
> *"lastUpdatedAtClient"*:"2018-11-05T10:27:21.020",
> *"attributeCategoryOptions"*:"xYerKDKCefk",
> *"lastUpdated"*:"2018-11-05T10:27:21.020",
> *"created"*:"2018-11-05T10:27:21.003",
> *"followup"*:false,
> *"deleted"*:false,
> *"attributeOptionCombo"*:"HllvX50cXC0",
> *"dataValues"*:[
>
> ],
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ]
> },
> {
> *"storedBy"*:"system",
> *"dueDate"*:"2018-12-31T00:00:00.000",
> *"createdAtClient"*:"2018-11-05T10:27:33.728",
> *"program"*:"WSGAb5XwJ3Y",
> *"event"*:"fC7Eyg0Rt2y",
> *"programStage"*:"edqlbukwRfQ",
> *"orgUnit"*:"DiszpKrYNg8",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"XIPQpWx7LY4",
> *"enrollmentStatus"*:"ACTIVE",
> *"status"*:"SCHEDULE",
> *"orgUnitName"*:"Ngelehun CHC",
> *"lastUpdatedAtClient"*:"2018-11-05T10:27:33.745",
> *"attributeCategoryOptions"*:"xYerKDKCefk",
> *"lastUpdated"*:"2018-11-05T10:27:33.745",
> *"created"*:"2018-11-05T10:27:33.728",
> *"followup"*:false,
> *"deleted"*:false,
> *"attributeOptionCombo"*:"HllvX50cXC0",
> *"dataValues"*:[
>
> ],
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ]
> },
> {
> *"storedBy"*:"system",
> *"dueDate"*:"2019-08-12T00:00:00.000",
> *"createdAtClient"*:"2018-11-05T10:27:59.305",
> *"program"*:"WSGAb5XwJ3Y",
> *"event"*:"yJsLjK6dxoq",
> *"programStage"*:"PFDfvmGpsR3",
> *"orgUnit"*:"DiszpKrYNg8",
> *"trackedEntityInstance"*:"hhO3vubtIma",
> *"enrollment"*:"XIPQpWx7LY4",
> *"enrollmentStatus"*:"ACTIVE",
> *"status"*:"SCHEDULE",
> *"orgUnitName"*:"Ngelehun CHC",
> *"lastUpdatedAtClient"*:"2018-11-05T10:27:59.324",
> *"attributeCategoryOptions"*:"xYerKDKCefk",
> *"lastUpdated"*:"2018-11-05T10:27:59.324",
> *"created"*:"2018-11-05T10:27:59.305",
> *"followup"*:false,
> *"deleted"*:false,
> *"attributeOptionCombo"*:"HllvX50cXC0",
> *"dataValues"*:[
>
> ],
> *"notes"*:[
>
> ],
> *"relationships"*:[
>
> ]
> }
> ]
> }
> ],
> *"relationships"*:[
>
> ],
> *"attributes"*:[
> {
> *"lastUpdated"*:"2018-11-05T10:26:56.552",
> *"storedBy"*:"system",
> *"code"*:"MMD_PER_NAM",
> *"displayName"*:"First name",
> *"created"*:"2018-11-05T10:26:56.552",
> *"valueType"*:"TEXT",
> *"attribute"*:"w75KJ2mc4zz",
> *"value"*:"test1"
> },
> {
> *"lastUpdated"*:"2018-11-06T16:40:59.157",
> *"storedBy"*:"admin",
> *"displayName"*:"TB identifier",
> *"created"*:"2018-11-06T16:40:59.157",
> *"valueType"*:"TEXT",
> *"attribute"*:"xs8A6tQJY0s",
> *"value"*:"4925406469"
> },
> {
> *"lastUpdated"*:"2018-11-05T10:26:56.555",
> *"storedBy"*:"system",
> *"displayName"*:"Last name",
> *"created"*:"2018-11-05T10:26:56.555",
> *"valueType"*:"TEXT",
> *"attribute"*:"zDhUuAYrxNC",
> *"value"*:"test1"
> },
> {
> *"lastUpdated"*:"2018-11-05T10:26:56.548",
> *"storedBy"*:"system",
> *"code"*:"MMD_PER_ID",
> *"displayName"*:"Unique ID",
> *"created"*:"2018-11-05T10:26:56.548",
> *"valueType"*:"NUMBER",
> *"attribute"*:"lZGmxYbs97q",
> *"value"*:"6708704"
> },
> {
> *"lastUpdated"*:"2018-11-06T16:40:59.129",
> *"storedBy"*:"admin",
> *"displayName"*:"Gender",
> *"created"*:"2018-11-06T16:40:59.129",
> *"valueType"*:"TEXT",
> *"attribute"*:"cejWyOfXge6",
> *"value"*:"Female"
> }
> ]
> }
>
>
>
>
>
>
>
> Thank you very much! Tomàs.
>
>
>
> *De:* Dávid Katuščák [mailto:david@xxxxxxxxx]
> *Enviado el:* 06 November 2018 16:08
> *Para:* Tomas Sala
> *CC:* dhis2-devs
> *Asunto:* Re: [Dhis2-devs] trackedEntityInstances SYNC
>
>
>
> Hi Tomas,
>
>
>
> It looks like this can be a possible bug (the program allows only 1 ACTIVE
> enrollment, the system imports first the ACTIVE one and then it doesn't
> consider that the second is COMPLETE and not ACTIVE. But I need to confirm
> this).
>
>
>
> Could you please provide a payload you are sending into the DHIS2? (If you
> test it on Demo DB (and the payload is for Demo DB) it will be a plus). You
> can send it directly to my email if you want.
>
>
>
> Regarding mergeMode: I think, merging does not apply here and it applies
> only to data values.
>
>
>
> On Tue, Nov 6, 2018 at 12:39 PM, Tomas Sala <tomas.sala@xxxxxxxxxxxxxxxxx>
> wrote:
>
> Hi,
>
>
>
> I am trying to import a trackedEntityInstance with two enrollments using
> the strategy SYNC, one is ACTIVE and the other one is COMPLETED. It only
> import the ACTIVE one and ignore the other one:
>
>
>
> "responseType": "ImportSummary",
>
> "status": "ERROR",
>
> "description": "TrackedEntityInstance
> z8txd6oJzR6 already has an active enrollment in program ORvg6A5ed7z",
>
> "importCount": {
>
> "imported": 0,
>
> "updated": 0,
>
> "ignored": 1,
>
> "deleted": 0
>
>
>
>
>
> I’m making this POST call /trackedEntityInstances?
> strategy=SYNC&mergeMode=MERGE
>
>
>
> Is it possible to avoid DHIS ignoring the COMPLETED enrolment and import
> both of them?
>
>
>
> Thank you!
>
>
>
> *Tomàs Sala Camarena*
>
> *Ehealth Technician, eHealth Team *
>
> *eHealth & Operations Applications (´Apps4OPS´)*
>
> *Projects & IT Unit *
>
> *Médecins Sans Frontières (MSF) Spain – Barcelona Office*
> Fixed: +34 933 213 043
>
> Email / Skype: *tomas.sala@xxxxxxxxxxxxxxxxx
> <tomas.sala@xxxxxxxxxxxxxxxxx>* - www.msf.org
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help : https://help.launchpad.net/ListHelp
>
>
>
>
> --
>
> Best regards / Mvh,
>
> David Katuscak
>
--
Best regards / Mvh,
David Katuscak
Follow ups
References