Skip to content

Commit 97c3462

Browse files
Merge pull request #441 from onc-healthit/LANTERN-782-curemd-webscraper
LANTERN-782-Add-curemd-webscraper
2 parents 9a34eb4 + 723ecc9 commit 97c3462

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

endpointmanager/pkg/chplendpointquerier/chplendpointquerier.go

+3
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ var pointclickURL = "https://fhir.pointclickcare.com/"
193193
var nextgenPracticeURL = "https://www.nextgen.com/api/practice-search"
194194
var aspmdURL = "https://fhirapi.asp.md:3030/aspmd/fhirserver/fhir_aspmd.asp"
195195
var axeiumURL = "https://apifhir.axeium.net:8443/reference-server/"
196+
var curemdURL = "https://www.curemd.com/developer/base-fhir-urls/"
196197
var emdscloudURL = "https://identity.emdscloud.com/api/api-resource/fhir"
197198
var betaAfoundriaURL = "https://beta.afoundria.com/api/fhir/urls"
198199
var ehealthlineURL = "http://ehealthline.com/dev/pdf/FHIR%20API%20Endpoints.htm"
@@ -567,6 +568,8 @@ func QueryCHPLEndpointList(chplURL string, fileToWriteTo string) {
567568
EzemrxWebscraper(chplURL, fileToWriteTo)
568569
} else if contains(bundleQuerierArray, chplURL) {
569570
BundleQuerierParser(chplURL, fileToWriteTo)
571+
} else if URLsEqual(chplURL, curemdURL) {
572+
CuremdWebscraper(curemdURL, fileToWriteTo)
570573
} else if URLsEqual(emdscloudURL, chplURL) {
571574
EmdsCloudWebscraper(emdscloudURL, fileToWriteTo)
572575
} else if URLsEqual(chplURL, betaAfoundriaURL) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package chplendpointquerier
2+
3+
import (
4+
"strings"
5+
6+
"github.com/PuerkitoBio/goquery"
7+
"github.com/onc-healthit/lantern-back-end/endpointmanager/pkg/helpers"
8+
log "github.com/sirupsen/logrus"
9+
)
10+
11+
func CuremdWebscraper(CHPLURL string, fileToWriteTo string) {
12+
13+
var entry LanternEntry
14+
var lanternEntryList []LanternEntry
15+
var endpointEntryList EndpointList
16+
17+
doc, err := helpers.ChromedpQueryEndpointList(CHPLURL, "")
18+
if err != nil {
19+
log.Fatal(err)
20+
}
21+
22+
doc.Find("label").Each(func(index int, item *goquery.Selection) {
23+
labelText := strings.TrimSpace(item.Text())
24+
if labelText == "Capability Statement:" {
25+
pTag := item.NextFiltered("p")
26+
if pTag.Length() > 0 {
27+
pTag.Find("a").Each(func(i int, link *goquery.Selection) {
28+
url, exists := link.Attr("href")
29+
if exists {
30+
entry.URL = url
31+
lanternEntryList = append(lanternEntryList, entry)
32+
}
33+
})
34+
}
35+
}
36+
})
37+
38+
endpointEntryList.Endpoints = lanternEntryList
39+
40+
err = WriteCHPLFile(endpointEntryList, fileToWriteTo)
41+
if err != nil {
42+
log.Fatal(err)
43+
}
44+
45+
}

0 commit comments

Comments
 (0)