dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #52058
Re: trackedEntityInstances SYNC
Sorry, 1 more thing to mention:
DHIS2, of course, allows to re-import deleted TEIs/enrollments/events. So
if the enrollment was deleted, and you are importing it as a deleted again,
then the request won't/shouldn't fail. What is not supported is importing
the TEI/Enrollment/Event as NON-DELETED if it already was deleted and the
system where you import it knows (has previous knowledge) that it was
deleted before.
On Fri, Nov 9, 2018 at 10:42 AM, Dávid Katuščák <david@xxxxxxxxx> wrote:
> 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?strat
>> egy=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
>
--
Best regards / Mvh,
David Katuscak
References