MACM and ADX: Difference between revisions

From IHRIS Wiki
No edit summary
No edit summary
Line 9: Line 9:
   Node HMIS->Node IL: ACK or receipt\n(no validation)
   Node HMIS->Node IL: ACK or receipt\n(no validation)
   Node IL->PoS: ACK or receipt\n(no validation)
   Node IL->PoS: ACK or receipt\n(no validation)
   loop ADX data values
   loop Node submitted ADX data values
     Node HMIS->Node HMIS: validate ADX message
     Node HMIS->Node HMIS: validate ADX message
     Node HMIS->Node Alert Aggregator: initiate Mobile Report Alert (ITI-84)\n for invalid messages\n recipient inferred from ???
     Node HMIS->Node Alert Aggregator: initiate Mobile Report Alert (ITI-84)\n for invalid messages\n recipient inferred from ???
Line 23: Line 23:
Node IL->Node IL: record headers
Node IL->Node IL: record headers
Node IL->Node HMIS: ACK of receipt\n(no validation)
Node IL->Node HMIS: ACK of receipt\n(no validation)
loop ADX data values
loop global submitted ADX data values
   Global HMIS->Global HMIS: validate ADX message
   Global HMIS->Global HMIS: validate ADX message
   Global HMIS->Global Alert Aggregator: initiate Mobile Report Alert (ITI-84)\n for invalid messages\n recipient inferred from ???
   Global HMIS->Global Alert Aggregator: initiate Mobile Report Alert (ITI-84)\n for invalid messages\n recipient inferred from ???

Revision as of 06:55, 2 September 2015


<sequenceDiagram> opt Third Party/PoS Submission

 PoS->Node IL: Submit ADX message
 Node IL->Node IL: Log headers (maybe data)
 Node IL->Node IL: Node HMIS: Translate local identifiers\n(e.g. site ID) to PEPFAR site ID
 Node IL->Node HMIS: Submit ADX message
 Node HMIS->Node IL: ACK or receipt\n(no validation)
 Node IL->PoS: ACK or receipt\n(no validation)
 loop Node submitted ADX data values
    Node HMIS->Node HMIS: validate ADX message
    Node HMIS->Node Alert Aggregator: initiate Mobile Report Alert (ITI-84)\n for invalid messages\n recipient inferred from ???
 end

end

Node HMIS->Node IL: User/cron-initiated submission of ADX\nMay include more than the orignial ADX Node IL->Node IL: Log headers (maybe data) Node IL->Global IL: Submit ADX message Global IL->Global HMIS: Submit ADX message Global HMIS->Global IL: ACK of receipt\n(no validation) Global IL->Node IL: ACK of receipt\n(no validation) Node IL->Node IL: record headers Node IL->Node HMIS: ACK of receipt\n(no validation) loop global submitted ADX data values

  Global HMIS->Global HMIS: validate ADX message
  Global HMIS->Global Alert Aggregator: initiate Mobile Report Alert (ITI-84)\n for invalid messages\n recipient inferred from ???
  opt
    Global Alert Aggregator->Global Alert Aggregator: Dispatch alert to recipient\n (is this the correct actor?)
  end

end

opt Node AA fetches alerts from Global AA

loop periodic update
  Node IL->Global IL: submit Query for Alert Status (ITI-85)\n search against same recipient as above 
  Global IL->Global Alert Aggregator: submit Query for Alert Status (ITI-85)
  Global Alert Aggregator->Global IL: Query for Alert Status (ITI-85) response
  Global IL->Node IL: Query for Alert Status (ITI-85) response
  Node IL->Node Alert Aggregator: Query for Alert Status (ITI-85) response
  Node Alert Aggregator->Node Alert Aggregator: Add alert to data store
  opt
    Node Alert Aggregator->Node Alert Aggregator: Dispatch alert to recipient
  end
end

end

opt Node HMIS looks for alerts on Node AA

 Node HMIS->Node Alert Aggregator: submit Query for Alert Status (ITI-85)
 Node Alert Aggregator->Node HMIS: Query for Alert Status (ITI-85) response

end


opt PoS looks for alerts on Node AA

 PoS->Node IL: submit Query for Alert Status (ITI-85)
 Node IL->Node IL: submit Query for Alert Status (ITI-85)
 Node IL->Node Alert Aggregator: submit Query for Alert Status (ITI-85)
 Node Alert Aggregator->Node IL: Query for Alert Status (ITI-85) response
 Node IL->PoS: Query for Alert Status (ITI-85) response  

end


</sequenceDiagram>