Skip to content

Commit

Permalink
- fix Coordinates to match DHIS2 coordinate Reference System (CRS) EP…
Browse files Browse the repository at this point in the history
…SG:4326, which uses Longitude/Latitude
  • Loading branch information
sekiskylink committed Jul 2, 2024
1 parent ff219c8 commit 1891d8d
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 46 deletions.
11 changes: 6 additions & 5 deletions locations.go
Original file line number Diff line number Diff line change
Expand Up @@ -500,11 +500,11 @@ func FetchFacilities(mflId, batchId string) {
} else {
// facility exists

var fj, lastestRevision dbutils.MapAnything
var fj, latestRevision dbutils.MapAnything
_ = json.Unmarshal(facilityJSON, &fj)
_ = json.Unmarshal(facility.GetLatestRevision(), &lastestRevision)
_ = json.Unmarshal(facility.GetLatestRevision(), &latestRevision)
fj["parent"] = facility.Parent()
newMatchedOld, diffMap, err := models.CompareDefinition(fj, lastestRevision)
newMatchedOld, diffMap, err := models.CompareDefinition(fj, latestRevision)
if err != nil {
log.WithError(err).Info("Failed to make comparison between old and new facility JSON objects")
}
Expand All @@ -518,7 +518,7 @@ func FetchFacilities(mflId, batchId string) {
continue
} else {
// metadataPayload := models.GenerateMetadataPayload(fj)
old, _ := json.Marshal(lastestRevision)
old, _ := json.Marshal(latestRevision)
newDefinition, _ := json.Marshal(facility)
metadataPayloadFromDiff := models.GenerateMetadataPayload(diffMap)
log.WithFields(log.Fields{
Expand Down Expand Up @@ -702,7 +702,8 @@ func GetOrgUnitFromFHIRLocation(location LocationEntry) models.OrganisationUnit
}
lat := location.Resource.Position.Latitude
long := location.Resource.Position.Longitude
coordinates := []json.Number{lat, long}
// XXX https://docs.dhis2.org/en/use/user-guides/dhis-core-version-240/configuring-the-system/maps.html
coordinates := []json.Number{long, lat} // XXX DHIS2 uses EPSG:4326 which does longitude/latitude
if lat.String() == "0.0" && long.String() == "0.0" {
coordinates = []json.Number{}
}
Expand Down
77 changes: 37 additions & 40 deletions models/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,54 +28,51 @@ type RequestStatus string

// constants for the status
const (
RequestStatusReady = RequestStatus("ready")
// RequestStatusPending = RequestStatus("pending")
RequestStatusReady = RequestStatus("ready")
RequestStatusExpired = RequestStatus("expired")
RequestStatusCompleted = RequestStatus("completed")
RequestStatusFailed = RequestStatus("failed")
// RequestStatusError = RequestStatus("error")
// RequestStatusIgnored = RequestStatus("ignored")
RequestStatusCanceled = RequestStatus("canceled")
RequestStatusCanceled = RequestStatus("canceled")
)

// Request represents our requests queue in the database
type Request struct {
r struct {
ID RequestID `db:"id" json:"-"`
UID string `db:"uid" json:"uid"`
BatchID string `db:"batchid" json:"batchId,omitempty"`
DependsOn dbutils.Int `db:"depends_on" json:"dependsOn,omitempty"`
Source int `db:"source" json:"source" validate:"required"`
Destination int `db:"destination" json:"destination" validate:"required"`
CCServers pq.Int64Array `db:"cc_servers" json:"CCServers,omitempty"`
CCServersStatus dbutils.JSON `db:"cc_servers_status" json:"CCServersStatus,omitempty"`
ContentType string `db:"ctype" json:"contentType,omitempty" validate:"required"`
Body string `db:"body" json:"body" validate:"required"`
Response string `db:"response" json:"response,omitempty"`
Status RequestStatus `db:"status" json:"status,omitempty"`
StatusCode string `db:"statuscode" json:"statusCode,omitempty"`
Retries int `db:"retries" json:"retries,omitempty"`
Errors string `db:"errors" json:"errors,omitempty"`
InSubmissoinPeriodbool bool `db:"in_submission_period" json:"-"`
FrequencyType string `db:"frequency_type" json:"frequencyType,omitempty"`
Period string `db:"period" json:"period,omitempty"`
Day string `db:"day" json:"day,omitempty"`
Week string `db:"week" json:"week,omitempty"`
Month string `db:"month" json:"month,omitempty"`
Year string `db:"year" json:"year,omitempty"`
MSISDN string `db:"msisdn" json:"msisdn,omitempty"`
RawMsg string `db:"raw_msg" json:"rawMsg,omitempty"`
Facility string `db:"facility" json:"facility,omitempty"`
District string `db:"district" json:"district,omitempty"`
ReportType string `db:"report_type" json:"reportType,omitempty" validate:"required"` // type of object eg event, enrollment, datavalues
ObjectType string `db:"object_type" json:"objectType,omitempty"` // type of report as in source system
Extras string `db:"extras" json:"extras,omitempty"`
Suspended bool `db:"suspended" json:"suspended,omitempty"` // whether request is suspended
BodyIsQueryParams bool `db:"body_is_query_param" json:"bodyIsQueryParams,omitempty"` // whether body is to be used a query parameters
SubmissionID string `db:"submissionid" json:"submissionId,omitempty"` // a reference ID is source system
URLSuffix string `db:"url_suffix" json:"urlSuffix,omitempty"`
Created time.Time `db:"created" json:"created,omitempty"`
Updated time.Time `db:"updated" json:"updated,omitempty"`
ID RequestID `db:"id" json:"-"`
UID string `db:"uid" json:"uid"`
BatchID string `db:"batchid" json:"batchId,omitempty"`
DependsOn dbutils.Int `db:"depends_on" json:"dependsOn,omitempty"`
Source int `db:"source" json:"source" validate:"required"`
Destination int `db:"destination" json:"destination" validate:"required"`
CCServers pq.Int64Array `db:"cc_servers" json:"CCServers,omitempty"`
CCServersStatus dbutils.JSON `db:"cc_servers_status" json:"CCServersStatus,omitempty"`
ContentType string `db:"ctype" json:"contentType,omitempty" validate:"required"`
Body string `db:"body" json:"body" validate:"required"`
Response string `db:"response" json:"response,omitempty"`
Status RequestStatus `db:"status" json:"status,omitempty"`
StatusCode string `db:"statuscode" json:"statusCode,omitempty"`
Retries int `db:"retries" json:"retries,omitempty"`
Errors string `db:"errors" json:"errors,omitempty"`
InSubmissionPeriod bool `db:"in_submission_period" json:"-"`
FrequencyType string `db:"frequency_type" json:"frequencyType,omitempty"`
Period string `db:"period" json:"period,omitempty"`
Day string `db:"day" json:"day,omitempty"`
Week string `db:"week" json:"week,omitempty"`
Month string `db:"month" json:"month,omitempty"`
Year string `db:"year" json:"year,omitempty"`
MSISDN string `db:"msisdn" json:"msisdn,omitempty"`
RawMsg string `db:"raw_msg" json:"rawMsg,omitempty"`
Facility string `db:"facility" json:"facility,omitempty"`
District string `db:"district" json:"district,omitempty"`
ReportType string `db:"report_type" json:"reportType,omitempty" validate:"required"` // type of object eg event, enrollment, datavalues
ObjectType string `db:"object_type" json:"objectType,omitempty"` // type of report as in source system
Extras string `db:"extras" json:"extras,omitempty"`
Suspended bool `db:"suspended" json:"suspended,omitempty"` // whether request is suspended
BodyIsQueryParams bool `db:"body_is_query_param" json:"bodyIsQueryParams,omitempty"` // whether body is to be used a query parameters
SubmissionID string `db:"submissionid" json:"submissionId,omitempty"` // a reference ID is source system
URLSuffix string `db:"url_suffix" json:"urlSuffix,omitempty"`
Created time.Time `db:"created" json:"created,omitempty"`
Updated time.Time `db:"updated" json:"updated,omitempty"`
// OrgID OrgID `db:"org_id" json:"org_id"` // Lets add these later
}
}
Expand Down
2 changes: 1 addition & 1 deletion request_processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ func Produce(db *sqlx.DB, jobs chan<- int, wg *sync.WaitGroup, mutex *sync.Mutex
// RequestsMap[""] = 6
for {

log.Println("Going to read requests")
// log.Println("Going to read requests")
rows, err := db.Queryx(`
SELECT
id FROM requests
Expand Down

0 comments on commit 1891d8d

Please sign in to comment.