HL7v2 저장소 만들기 및 관리

이 페이지에서는 Health Level Seven Version 2.x(HL7v2) 저장소를 만들고, 편집, 확인, 삭제하는 방법을 설명합니다.

HL7v2 저장소 만들기

HL7v2 저장소를 만들려면 먼저 데이터 세트를 만들어야 합니다.

다음 샘플은 HL7v2 저장소를 만드는 방법을 보여줍니다.

Console

HL7v2 저장소를 만들려면 다음 안내를 따르세요.

  1. Cloud Console에서 데이터 세트 페이지로 이동합니다.

    데이터세트 페이지로 이동

  2. HL7v2 저장소를 만들 데이터 세트를 엽니다.
  3. 데이터 저장소 만들기를 클릭합니다.
  4. 데이터 세트에서 사용자가 선택한 고유한 이름을 입력합니다. 이름이 고유하지 않으면 데이터 저장소 만들기가 실패합니다.
  5. 데이터 저장소 유형으로 HL7v2를 선택합니다.
  6. 데이터 저장소로 Pub/Sub 주제를 구성하려면 주제 이름을 입력합니다. Pub/Sub 주제를 지정할 때 다음 샘플과 같이 주제에 대해 정규화된 URI를 입력합니다.
    projects/PROJECT_ID/topics/PUBSUB_TOPIC
    
  7. 만들기를 클릭합니다.

새 데이터 저장소가 목록에 표시됩니다.

gcloud

데이터 세트에 HL7v2 저장소를 만들려면 gcloud healthcare hl7v2-stores create 명령어를 실행합니다.

  • HL7v2 저장소 ID는 데이터 세트 내에서 고유해야 합니다. 숫자, 문자, 밑줄, 대시, 마침표로 이루어진 1~256자의 모든 유니코드 문자열일 수 있습니다.
  • HL7v2 저장소 변경사항의 Pub/Sub 주제를 알리려면 --pubsub-topic 인수를 사용하여 기존 Pub/Sub 주제 이름을 지정합니다.
Pub/Sub 주제를 지정할 때 다음 샘플과 같이 주제에 대해 정규화된 URI를 입력합니다.
projects/PROJECT_ID/topics/PUBSUB_TOPIC

다음 샘플은 HL7v2 저장소를 만드는 방법을 보여줍니다.

gcloud healthcare hl7v2-stores create HL7V2_STORE_ID \
  --dataset=DATASET_ID \
  --location=LOCATION

요청이 성공하면 명령어 프롬프트가 다음 메시지를 표시합니다.

Created hl7v2Store [HL7V2_STORE_ID].

API

HL7v2 저장소를 만들려면 projects.locations.datasets.hl7V2Stores.create 메서드를 사용합니다.

curl

HL7v2 저장소를 만들려면 POST 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • HL7v2 저장소의 이름입니다. HL7v2 저장소 이름은 상위 데이터 세트에서 고유해야 합니다. 숫자, 문자, 밑줄, 대시, 마침표로 이루어진 1~256자의 모든 유니코드 문자열일 수 있습니다.
  • 액세스 토큰
  • 선택적으로 Cloud Healthcare API가 HL7v2 저장소 변경사항 알림을 전송하는 기존 Pub/Sub 주제입니다. Pub/Sub 주제를 구성하는 방법에 대한 자세한 내용은 HL7v2 저장소 편집을 참조하세요.
  • 선택적으로 기존 Pub/Sub 주제 및 필터 목록입니다. Cloud Healthcare API는 여러 주제로 알림을 전송할 수 있으며, 사용자가 필터를 사용해서 전송할 알림을 제한할 수 있습니다. Pub/Sub 주제 및 필터를 구성하는 방법에 대한 자세한 내용은 HL7v2 저장소 편집을 참조하세요.

다음 샘플은 curl을 사용하는 POST 요청을 보여줍니다.

curl -X POST \
    --data "" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
}

PowerShell

HL7v2 저장소를 만들려면 POST 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • HL7v2 저장소의 이름입니다. HL7v2 저장소 이름은 상위 데이터 세트에서 고유해야 합니다. 숫자, 문자, 밑줄, 대시, 마침표로 이루어진 1~256자의 모든 유니코드 문자열일 수 있습니다.
  • 액세스 토큰
  • 선택적으로 Cloud Healthcare API가 HL7v2 저장소 변경사항 알림을 전송하는 기존 Pub/Sub 주제입니다. Pub/Sub 주제를 구성하는 방법에 대한 자세한 내용은 HL7v2 저장소 편집을 참조하세요.
  • 선택적으로 기존 Pub/Sub 주제 및 필터 목록입니다. Cloud Healthcare API는 여러 주제로 알림을 전송할 수 있으며, 사용자가 필터를 사용해서 전송할 알림을 제한할 수 있습니다. Pub/Sub 주제 및 필터를 구성하는 방법에 대한 자세한 내용은 HL7v2 저장소 편집을 참조하세요.

다음 샘플은 Windows PowerShell을 사용한 POST 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
}

Go

import (
	"context"
	"fmt"
	"io"

	healthcare "google.golang.org/api/healthcare/v1"
)

// createHL7V2Store creates an HL7V2 store.
func createHL7V2Store(w io.Writer, projectID, location, datasetID, hl7V2StoreID string) error {
	ctx := context.Background()

	healthcareService, err := healthcare.NewService(ctx)
	if err != nil {
		return fmt.Errorf("healthcare.NewService: %v", err)
	}

	storesService := healthcareService.Projects.Locations.Datasets.Hl7V2Stores

	store := &healthcare.Hl7V2Store{}
	parent := fmt.Sprintf("projects/%s/locations/%s/datasets/%s", projectID, location, datasetID)

	resp, err := storesService.Create(parent, store).Hl7V2StoreId(hl7V2StoreID).Do()
	if err != nil {
		return fmt.Errorf("Create: %v", err)
	}

	fmt.Fprintf(w, "Created HL7V2 store: %q\n", resp.Name)
	return nil
}

자바

import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.healthcare.v1.CloudHealthcare;
import com.google.api.services.healthcare.v1.CloudHealthcare.Projects.Locations.Datasets.Hl7V2Stores;
import com.google.api.services.healthcare.v1.CloudHealthcareScopes;
import com.google.api.services.healthcare.v1.model.Hl7V2Store;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class Hl7v2StoreCreate {
  private static final String DATASET_NAME = "projects/%s/locations/%s/datasets/%s";
  private static final JsonFactory JSON_FACTORY = new JacksonFactory();
  private static final NetHttpTransport HTTP_TRANSPORT = new NetHttpTransport();

  public static void hl7v2StoreCreate(String datasetName, String hl7v2StoreId) throws IOException {
    // String datasetName =
    //     String.format(DATASET_NAME, "your-project-id", "your-region-id", "your-dataset-id");
    // String hl7v2StoreId = "your-hl7v25-id"

    // Initialize the client, which will be used to interact with the service.
    CloudHealthcare client = createClient();

    // Configure the store to be created.
    Map<String, String> labels = new HashMap<>();
    labels.put("key1", "value1");
    labels.put("key2", "value2");
    Hl7V2Store content = new Hl7V2Store().setLabels(labels);

    // Create request and configure any parameters.
    Hl7V2Stores.Create request =
        client
            .projects()
            .locations()
            .datasets()
            .hl7V2Stores()
            .create(datasetName, content)
            .setHl7V2StoreId(hl7v2StoreId);

    // Execute the request and process the results.
    Hl7V2Store response = request.execute();
    System.out.println("Hl7V2Store store created: " + response.toPrettyString());
  }

  private static CloudHealthcare createClient() throws IOException {
    // Use Application Default Credentials (ADC) to authenticate the requests
    // For more information see https://cloud.google.com/docs/authentication/production
    GoogleCredentials credential =
        GoogleCredentials.getApplicationDefault()
            .createScoped(Collections.singleton(CloudHealthcareScopes.CLOUD_PLATFORM));

    // Create a HttpRequestInitializer, which will provide a baseline configuration to all requests.
    HttpRequestInitializer requestInitializer =
        request -> {
          new HttpCredentialsAdapter(credential).initialize(request);
          request.setConnectTimeout(60000); // 1 minute connect timeout
          request.setReadTimeout(60000); // 1 minute read timeout
        };

    // Build the client for interacting with the service.
    return new CloudHealthcare.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
        .setApplicationName("your-application-name")
        .build();
  }
}

Node.js

const {google} = require('googleapis');
const healthcare = google.healthcare('v1');

const createHl7v2Store = async () => {
  const auth = await google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform'],
  });
  google.options({auth});

  // TODO(developer): uncomment these lines before running the sample
  // const cloudRegion = 'us-central1';
  // const projectId = 'adjective-noun-123';
  // const datasetId = 'my-dataset';
  // const hl7v2StoreId = 'my-hl7v2-store';
  const parent = `projects/${projectId}/locations/${cloudRegion}/datasets/${datasetId}`;
  const request = {parent, hl7V2StoreId: hl7v2StoreId};

  await healthcare.projects.locations.datasets.hl7V2Stores.create(request);
  console.log(`Created HL7v2 store: ${hl7v2StoreId}`);
};

createHl7v2Store();

Python

def create_hl7v2_store(project_id, cloud_region, dataset_id, hl7v2_store_id):
    """Creates a new HL7v2 store within the parent dataset."""
    client = get_client()
    hl7v2_store_parent = "projects/{}/locations/{}/datasets/{}".format(
        project_id, cloud_region, dataset_id
    )

    request = (
        client.projects()
        .locations()
        .datasets()
        .hl7V2Stores()
        .create(parent=hl7v2_store_parent, body={}, hl7V2StoreId=hl7v2_store_id)
    )

    response = request.execute()
    print("Created HL7v2 store: {}".format(hl7v2_store_id))
    return response

HL7v2 저장소 수정

다음 샘플은 HL7v2 저장소에 다음 항목을 변경하는 방법을 보여줍니다.

  • Cloud Healthcare API가 HL7v2 저장소 변경사항 알림을 전송하기 위해 사용하는 Pub/Sub 주제 및 필터를 수정합니다.

  • 라벨을 수정합니다. 라벨은 Google Cloud 리소스를 구성하는 데 도움이 되는 키-값 쌍입니다.

Pub/Sub 주제를 지정할 때 다음 샘플과 같이 주제에 대해 정규화된 URI를 입력합니다.
projects/PROJECT_ID/topics/PUBSUB_TOPIC
알림이 작동하려면 Cloud Healthcare Service Agent 서비스 계정에 추가 권한을 부여해야 합니다. 자세한 내용은 DICOM, FHIR, HL7v2 저장소 Pub/Sub 권한을 참조하세요.

Console

Cloud Console은 Pub/Sub 주제 또는 라벨 수정을 지원하지 않습니다. 대신 curl, Windows PowerShell, 사용자가 선호하는 언어를 사용합니다.

gcloud

gcloud 도구는 Pub/Sub 주제 또는 라벨 수정을 지원하지 않습니다. 대신 curl, Windows PowerShell, 사용자가 선호하는 언어를 사용합니다.

API

HL7v2 저장소를 수정하려면 projects.locations.datasets.hl7V2Stores.patch 메서드를 사용합니다.

curl

HL7v2 저장소를 수정하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • HL7v2 저장소의 이름
  • 업데이트할 메타데이터 이 샘플에는 Pub/Sub 주제에 대한 한정된 URI, 주제에 대한 필터, 쉼표로 구분된 키-값 쌍 목록으로 정의된 라벨 집합이 포함됩니다.

    유효한 필터 값의 예시는 filter를 참조하세요.

  • 업데이트 마스크

  • 액세스 토큰

다음 샘플은 curl을 사용하는 PATCH 요청을 보여줍니다.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'notificationConfigs': [
          {
              'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC1',
              'filter' : 'FILTER1'
          },
          {
              'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC2',
              'filter': 'FILTER2'
          },
      ],
      'labels': {
        'KEY1':'VALUE1','KEY2':'VALUE2'
      }
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID?updateMask=notificationConfigs,labels"

필터 및 필터 구문 정의에 대한 자세한 내용은 Hl7V2NotificationConfig를 참조하세요.

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID",
  "parserConfig": {},
  "labels": {
    "KEY1": "VALUE1",
    "KEY2": "VALUE2"
  },
  "notificationConfigs": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC1",
      "filter": "FILTER1"
    },
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC2",
      "filter": "FILTER2"
    }
  ]
}

PowerShell

HL7v2 저장소를 수정하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • HL7v2 저장소의 이름
  • 업데이트할 메타데이터 이 샘플에는 Pub/Sub 주제에 대한 한정된 URI, 주제에 대한 필터, 쉼표로 구분된 키-값 쌍 목록으로 정의된 라벨 집합이 포함됩니다.

    유효한 필터 값의 예시는 filter를 참조하세요.

  • 업데이트 마스크

  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 PATCH 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'notificationConfigs': [
          {
              'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC1',
              'filter': 'FILTER1'
          },
          {
              'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC2',
              'filter': 'FILTER2'
          },
      ],
      'labels': {
        'KEY1':'VALUE1','KEY2':'VALUE2'
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID?updateMask=notificationConfigs,labels" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID",
  "parserConfig": {},
  "labels": {
    "KEY1": "VALUE1",
    "KEY2": "VALUE2"
  },
  "notificationConfigs": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC1",
      "filter": "FILTER1"
    },
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC2",
      "filter": "FILTER2"
    }
  ]
}

Go

import (
	"context"
	"fmt"
	"io"

	healthcare "google.golang.org/api/healthcare/v1"
)

// patchHL7V2Store updates (patches) a HL7V2 store by updating its Pub/sub topic name.
func patchHL7V2Store(w io.Writer, projectID, location, datasetID, hl7v2StoreID, topicName string) error {
	ctx := context.Background()

	healthcareService, err := healthcare.NewService(ctx)
	if err != nil {
		return fmt.Errorf("healthcare.NewService: %v", err)
	}

	storesService := healthcareService.Projects.Locations.Datasets.Hl7V2Stores

	name := fmt.Sprintf("projects/%s/locations/%s/datasets/%s/hl7V2Stores/%s", projectID, location, datasetID, hl7v2StoreID)

	if _, err := storesService.Patch(name, &healthcare.Hl7V2Store{
		NotificationConfigs: []*healthcare.Hl7V2NotificationConfig{
			{
				PubsubTopic: topicName, // format is "projects/*/locations/*/topics/*"
			},
		},
	}).UpdateMask("notificationConfigs").Do(); err != nil {
		return fmt.Errorf("Patch: %v", err)
	}

	fmt.Fprintf(w, "Patched HL7V2 store %s with Pub/sub topic %s\n", datasetID, topicName)

	return nil
}

자바

import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.healthcare.v1.CloudHealthcare;
import com.google.api.services.healthcare.v1.CloudHealthcare.Projects.Locations.Datasets.Hl7V2Stores;
import com.google.api.services.healthcare.v1.CloudHealthcareScopes;
import com.google.api.services.healthcare.v1.model.Hl7V2NotificationConfig;
import com.google.api.services.healthcare.v1.model.Hl7V2Store;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Hl7v2StorePatch {
  private static final String HL7v2_NAME = "projects/%s/locations/%s/datasets/%s/hl7V2Stores/%s";
  private static final JsonFactory JSON_FACTORY = new JacksonFactory();
  private static final NetHttpTransport HTTP_TRANSPORT = new NetHttpTransport();

  public static void patchHl7v2Store(String hl7v2StoreName, String pubsubTopic) throws IOException {
    // String hl7v2StoreName =
    //    String.format(
    //        HL7v2_NAME, "your-project-id", "your-region-id", "your-dataset-id", "your-hl7v2-id");
    // String pubsubTopic = "your-pubsub-topic";

    // Initialize the client, which will be used to interact with the service.
    CloudHealthcare client = createClient();

    // Fetch the initial state of the HL7v2 store.
    Hl7V2Stores.Get getRequest =
        client.projects().locations().datasets().hl7V2Stores().get(hl7v2StoreName);
    Hl7V2Store store = getRequest.execute();

    Hl7V2NotificationConfig notificationConfig = new Hl7V2NotificationConfig();
    notificationConfig.setPubsubTopic(pubsubTopic);
    List<Hl7V2NotificationConfig> notificationConfigs = new ArrayList<Hl7V2NotificationConfig>();
    notificationConfigs.add(notificationConfig);
    // Update the Hl7v2Store fields as needed as needed. For a full list of Hl7v2Store fields, see:
    // https://cloud.google.com/healthcare/docs/reference/rest/v1/projects.locations.datasets.hl7V2Store#Hl7v2Store
    store.setNotificationConfigs(notificationConfigs);

    // Create request and configure any parameters.
    Hl7V2Stores.Patch request =
        client
            .projects()
            .locations()
            .datasets()
            .hl7V2Stores()
            .patch(hl7v2StoreName, store)
            .setUpdateMask("notificationConfigs");

    // Execute the request and process the results.
    store = request.execute();
    System.out.println("HL7v2 store patched: \n" + store.toPrettyString());
  }

  private static CloudHealthcare createClient() throws IOException {
    // Use Application Default Credentials (ADC) to authenticate the requests
    // For more information see https://cloud.google.com/docs/authentication/production
    GoogleCredentials credential =
        GoogleCredentials.getApplicationDefault()
            .createScoped(Collections.singleton(CloudHealthcareScopes.CLOUD_PLATFORM));

    // Create a HttpRequestInitializer, which will provide a baseline configuration to all requests.
    HttpRequestInitializer requestInitializer =
        request -> {
          new HttpCredentialsAdapter(credential).initialize(request);
          request.setConnectTimeout(60000); // 1 minute connect timeout
          request.setReadTimeout(60000); // 1 minute read timeout
        };

    // Build the client for interacting with the service.
    return new CloudHealthcare.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
        .setApplicationName("your-application-name")
        .build();
  }
}

Node.js

const {google} = require('googleapis');
const healthcare = google.healthcare('v1');

const patchHl7v2Store = async () => {
  const auth = await google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform'],
  });
  google.options({auth});

  // TODO(developer): uncomment these lines before running the sample
  // const cloudRegion = 'us-central1';
  // const projectId = 'adjective-noun-123';
  // const datasetId = 'my-dataset';
  // const hl7v2StoreId = 'my-hl7v2-store';
  // const pubsubTopic = 'my-topic'
  const name = `projects/${projectId}/locations/${cloudRegion}/datasets/${datasetId}/hl7V2Stores/${hl7v2StoreId}`;
  const request = {
    name,
    updateMask: 'notificationConfigs',
    resource: {
      notificationConfigs: [
        {
          pubsubTopic: `projects/${projectId}/topics/${pubsubTopic}`,
        },
      ],
    },
  };

  await healthcare.projects.locations.datasets.hl7V2Stores.patch(request);
  console.log(
    `Patched HL7v2 store ${hl7v2StoreId} with Cloud Pub/Sub topic ${pubsubTopic}`
  );
};

patchHl7v2Store();

Python

def patch_hl7v2_store(project_id, cloud_region, dataset_id, hl7v2_store_id):
    """Updates the HL7v2 store."""
    client = get_client()
    hl7v2_store_parent = "projects/{}/locations/{}/datasets/{}".format(
        project_id, cloud_region, dataset_id
    )
    hl7v2_store_name = "{}/hl7V2Stores/{}".format(hl7v2_store_parent, hl7v2_store_id)

    patch = {"notificationConfigs": None}

    request = (
        client.projects()
        .locations()
        .datasets()
        .hl7V2Stores()
        .patch(name=hl7v2_store_name, updateMask="notificationConfigs", body=patch)
    )

    response = request.execute()
    print(
        "Patched HL7v2 store {} with Cloud Pub/Sub topic: None".format(hl7v2_store_id)
    )
    return response

HL7v2 저장소 세부정보 가져오기

다음 샘플은 HL7v2 저장소에 대해 세부정보를 가져오는 방법을 보여줍니다.

Console

HL7v2 저장소의 세부정보를 보려면 다음 안내를 따르세요.

  1. Cloud Console에서 데이터 세트 페이지로 이동합니다.

    데이터세트 페이지로 이동

  2. HL7v2 저장소가 포함된 데이터 세트의 ID를 클릭합니다.
  3. HL7v2 저장소의 이름을 클릭합니다.

gcloud

HL7v2 저장소에 대해 세부정보를 가져오려면 gcloud healthcare hl7v2-stores describe 명령어를 실행합니다.

다음 샘플은 HL7v2 저장소에 대한 세부정보를 가져오는 방법을 보여줍니다.

gcloud healthcare hl7v2-stores describe HL7V2_STORE_ID \
  --dataset=DATASET_ID \
  --location=LOCATION

요청이 성공하면 명령어 프롬프트에 HL7v2 저장소 세부정보가 표시됩니다.

name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7v2-stores/HL7V2_STORE_ID

API

HL7v2 저장소에 대해 세부정보를 가져오려면 projects.locations.datasets.hl7V2Stores.get 메서드를 사용합니다.

curl

HL7v2 저장소에 대해 세부정보를 가져오려면 GET 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • HL7v2 저장소의 이름
  • 액세스 토큰

다음 샘플은 curl을 사용하는 GET 요청을 보여줍니다.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
}

Hl7V2Store 리소스에서 필드를 구성한 경우 응답에도 표시됩니다.

PowerShell

HL7v2 저장소에 대해 세부정보를 가져오려면 GET 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • HL7v2 저장소의 이름
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 GET 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
}

Hl7V2Store 리소스에서 필드를 구성한 경우 응답에도 표시됩니다.

Go

import (
	"context"
	"fmt"
	"io"

	healthcare "google.golang.org/api/healthcare/v1"
)

// getHL7V2Store gets an HL7V2 store.
func getHL7V2Store(w io.Writer, projectID, location, datasetID, hl7v2StoreID string) error {
	ctx := context.Background()

	healthcareService, err := healthcare.NewService(ctx)
	if err != nil {
		return fmt.Errorf("healthcare.NewService: %v", err)
	}

	storesService := healthcareService.Projects.Locations.Datasets.Hl7V2Stores

	name := fmt.Sprintf("projects/%s/locations/%s/datasets/%s/hl7V2Stores/%s", projectID, location, datasetID, hl7v2StoreID)

	store, err := storesService.Get(name).Do()
	if err != nil {
		return fmt.Errorf("Get: %v", err)
	}

	fmt.Fprintf(w, "Got HL7V2 store: %q\n", store.Name)
	return nil
}

자바

import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.healthcare.v1.CloudHealthcare;
import com.google.api.services.healthcare.v1.CloudHealthcare.Projects.Locations.Datasets.Hl7V2Stores;
import com.google.api.services.healthcare.v1.CloudHealthcareScopes;
import com.google.api.services.healthcare.v1.model.Hl7V2Store;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;

public class Hl7v2StoreGet {
  private static final String HL7v2_NAME = "projects/%s/locations/%s/datasets/%s/hl7V2Stores/%s";
  private static final JsonFactory JSON_FACTORY = new JacksonFactory();
  private static final NetHttpTransport HTTP_TRANSPORT = new NetHttpTransport();

  public static void hl7v2eStoreGet(String hl7v2StoreName) throws IOException {
    // String hl7v2StoreName =
    //    String.format(
    //        HL7v2_NAME, "your-project-id", "your-region-id", "your-dataset-id", "your-hl7v2-id");

    // Initialize the client, which will be used to interact with the service.
    CloudHealthcare client = createClient();

    // Create request and configure any parameters.
    Hl7V2Stores.Get request =
        client.projects().locations().datasets().hl7V2Stores().get(hl7v2StoreName);

    // Execute the request and process the results.
    Hl7V2Store store = request.execute();
    System.out.println("HL7v2 store retrieved: \n" + store.toPrettyString());
  }

  private static CloudHealthcare createClient() throws IOException {
    // Use Application Default Credentials (ADC) to authenticate the requests
    // For more information see https://cloud.google.com/docs/authentication/production
    GoogleCredentials credential =
        GoogleCredentials.getApplicationDefault()
            .createScoped(Collections.singleton(CloudHealthcareScopes.CLOUD_PLATFORM));

    // Create a HttpRequestInitializer, which will provide a baseline configuration to all requests.
    HttpRequestInitializer requestInitializer =
        request -> {
          new HttpCredentialsAdapter(credential).initialize(request);
          request.setConnectTimeout(60000); // 1 minute connect timeout
          request.setReadTimeout(60000); // 1 minute read timeout
        };

    // Build the client for interacting with the service.
    return new CloudHealthcare.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
        .setApplicationName("your-application-name")
        .build();
  }
}

Node.js

const {google} = require('googleapis');
const healthcare = google.healthcare('v1');

const getHl7v2Store = async () => {
  const auth = await google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform'],
  });
  google.options({auth});

  // TODO(developer): uncomment these lines before running the sample
  // const cloudRegion = 'us-central1';
  // const projectId = 'adjective-noun-123';
  // const datasetId = 'my-dataset';
  // const hl7v2StoreId = 'my-hl7v2-store';
  const name = `projects/${projectId}/locations/${cloudRegion}/datasets/${datasetId}/hl7V2Stores/${hl7v2StoreId}`;
  const request = {name};

  const hl7v2Store = await healthcare.projects.locations.datasets.hl7V2Stores.get(
    request
  );
  console.log(hl7v2Store.data);
};

getHl7v2Store();

Python

def get_hl7v2_store(project_id, cloud_region, dataset_id, hl7v2_store_id):
    """Gets the specified HL7v2 store."""
    client = get_client()
    hl7v2_store_parent = "projects/{}/locations/{}/datasets/{}".format(
        project_id, cloud_region, dataset_id
    )
    hl7v2_store_name = "{}/hl7V2Stores/{}".format(hl7v2_store_parent, hl7v2_store_id)

    hl7v2_stores = client.projects().locations().datasets().hl7V2Stores()
    hl7v2_store = hl7v2_stores.get(name=hl7v2_store_name).execute()

    print("Name: {}".format(hl7v2_store.get("name")))
    print("Notification config:")
    if hl7v2_store.get("notificationConfig") is not None:
        notification_config = hl7v2_store.get("notificationConfig")
        print(
            "\tCloud Pub/Sub topic: {}".format(notification_config.get("pubsubTopic"))
        )

    return hl7v2_store

데이터 세트의 HL7v2 저장소 나열

다음 샘플은 데이터 세트의 HL7v2 저장소를 나열하는 방법을 보여줍니다.

Console

데이터 세트의 데이터 저장소를 보려면 다음 안내를 따르세요.

  1. Cloud Console에서 데이터 세트 페이지로 이동합니다.

    데이터세트 페이지로 이동

  2. 데이터 저장소를 보려는 데이터 세트의 ID를 클릭합니다.

gcloud

데이터 세트의 HL7v2 저장소를 나열하려면 gcloud healthcare hl7v2-stores list 명령어를 실행합니다.

gcloud healthcare hl7v2-stores list --dataset=DATASET_ID

요청이 성공하면 명령어 프롬프트에 HL7v2 저장소가 나열됩니다.

ID              LOCATION     TOPIC
HL7V2_STORE_ID  LOCATION       projects/PROJECT_ID/topics/PUBSUB_TOPIC

API

데이터 세트의 HL7v2 저장소를 나열하려면 projects.locations.datasets.hl7V2Stores.list 메서드를 사용합니다.

curl

데이터 세트의 HL7v2 저장소를 나열하려면 GET 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • 액세스 토큰

다음 샘플은 curl을 사용하는 GET 요청을 보여줍니다.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "hl7V2Stores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
    },
    {
      ...
    }
  ]
}

Hl7V2Store 리소스에서 필드를 구성한 경우 응답에도 표시됩니다.

PowerShell

데이터 세트의 HL7v2 저장소를 나열하려면 GET 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 GET 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "hl7V2Stores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"
    },
    {
      ...
    }
  ]
}

Hl7V2Store 리소스에서 필드를 구성한 경우 응답에도 표시됩니다.

Go

import (
	"context"
	"fmt"
	"io"

	healthcare "google.golang.org/api/healthcare/v1"
)

// listHL7V2Stores prints a list of HL7V2 stores to w.
func listHL7V2Stores(w io.Writer, projectID, location, datasetID string) error {
	ctx := context.Background()

	healthcareService, err := healthcare.NewService(ctx)
	if err != nil {
		return fmt.Errorf("healthcare.NewService: %v", err)
	}

	storesService := healthcareService.Projects.Locations.Datasets.Hl7V2Stores

	parent := fmt.Sprintf("projects/%s/locations/%s/datasets/%s", projectID, location, datasetID)

	resp, err := storesService.List(parent).Do()
	if err != nil {
		return fmt.Errorf("Create: %v", err)
	}

	fmt.Fprintln(w, "HL7V2 stores:")
	for _, s := range resp.Hl7V2Stores {
		fmt.Fprintln(w, s.Name)
	}
	return nil
}

자바

import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.healthcare.v1.CloudHealthcare;
import com.google.api.services.healthcare.v1.CloudHealthcare.Projects.Locations.Datasets.Hl7V2Stores;
import com.google.api.services.healthcare.v1.CloudHealthcareScopes;
import com.google.api.services.healthcare.v1.model.Hl7V2Store;
import com.google.api.services.healthcare.v1.model.ListHl7V2StoresResponse;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Hl7v2StoreList {
  private static final String DATASET_NAME = "projects/%s/locations/%s/datasets/%s";
  private static final JsonFactory JSON_FACTORY = new JacksonFactory();
  private static final NetHttpTransport HTTP_TRANSPORT = new NetHttpTransport();

  public static void hl7v2StoreList(String datasetName) throws IOException {
    // String datasetName =
    //     String.format(DATASET_NAME, "your-project-id", "your-region-id", "your-dataset-id");

    // Initialize the client, which will be used to interact with the service.
    CloudHealthcare client = createClient();

    // Results are paginated, so multiple queries may be required.
    String pageToken = null;
    List<Hl7V2Store> stores = new ArrayList<>();
    do {
      // Create request and configure any parameters.
      Hl7V2Stores.List request =
          client
              .projects()
              .locations()
              .datasets()
              .hl7V2Stores()
              .list(datasetName)
              .setPageSize(100) // Specify pageSize up to 1000
              .setPageToken(pageToken);

      // Execute response and collect results.
      ListHl7V2StoresResponse response = request.execute();
      stores.addAll(response.getHl7V2Stores());

      // Update the page token for the next request.
      pageToken = response.getNextPageToken();
    } while (pageToken != null);

    // Print results.
    System.out.printf("Retrieved %s HL7v2 stores: \n", stores.size());
    for (Hl7V2Store data : stores) {
      System.out.println("\t" + data.toPrettyString());
    }
  }

  private static CloudHealthcare createClient() throws IOException {
    // Use Application Default Credentials (ADC) to authenticate the requests
    // For more information see https://cloud.google.com/docs/authentication/production
    GoogleCredentials credential =
        GoogleCredentials.getApplicationDefault()
            .createScoped(Collections.singleton(CloudHealthcareScopes.CLOUD_PLATFORM));

    // Create a HttpRequestInitializer, which will provide a baseline configuration to all requests.
    HttpRequestInitializer requestInitializer =
        request -> {
          new HttpCredentialsAdapter(credential).initialize(request);
          request.setConnectTimeout(60000); // 1 minute connect timeout
          request.setReadTimeout(60000); // 1 minute read timeout
        };

    // Build the client for interacting with the service.
    return new CloudHealthcare.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
        .setApplicationName("your-application-name")
        .build();
  }
}

Node.js

const {google} = require('googleapis');
const healthcare = google.healthcare('v1');

const listHl7v2Stores = async () => {
  const auth = await google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform'],
  });
  google.options({auth});

  // TODO(developer): uncomment these lines before running the sample
  // const cloudRegion = 'us-central1';
  // const projectId = 'adjective-noun-123';
  // const datasetId = 'my-dataset';
  const parent = `projects/${projectId}/locations/${cloudRegion}/datasets/${datasetId}`;
  const request = {parent};

  const hl7v2Stores = await healthcare.projects.locations.datasets.hl7V2Stores.list(
    request
  );
  console.log(hl7v2Stores.data);
};

listHl7v2Stores();

Python

def list_hl7v2_stores(project_id, cloud_region, dataset_id):
    """Lists the HL7v2 stores in the given dataset."""
    client = get_client()
    hl7v2_store_parent = "projects/{}/locations/{}/datasets/{}".format(
        project_id, cloud_region, dataset_id
    )

    hl7v2_stores = (
        client.projects()
        .locations()
        .datasets()
        .hl7V2Stores()
        .list(parent=hl7v2_store_parent)
        .execute()
        .get("hl7V2Stores", [])
    )

    for hl7v2_store in hl7v2_stores:
        print(
            "HL7v2 store: {}\n"
            "Notification config: {}".format(
                hl7v2_store.get("name"), hl7v2_store.get("notificationConfig"),
            )
        )

    return hl7v2_stores

HL7v2 저장소 삭제

다음 샘플은 HL7v2 저장소를 삭제하는 방법을 보여줍니다.

Console

데이터 저장소를 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console에서 데이터 세트 페이지로 이동합니다.

    데이터세트 페이지로 이동

  2. 데이터 세트 ID를 클릭하여 데이터 세트를 엽니다.
  3. 삭제할 데이터 저장소를 선택한 다음 삭제를 클릭합니다.
  4. 확인하려면 데이터 저장소 이름을 입력한 다음 삭제를 클릭합니다.

gcloud

HL7v2 저장소를 삭제하려면 gcloud healthcare hl7v2-stores delete 명령어를 실행합니다.

  1. delete 명령어를 실행합니다.

    gcloud healthcare hl7v2-stores delete HL7V2_STORE_ID \
      --dataset=DATASET_ID \
      --location=LOCATION
  2. 확인하려면 Y를 입력합니다.

요청이 성공하면 명령어 프롬프트가 다음을 표시합니다.

Deleted hl7v2Store [HL7V2_STORE_ID]

API

HL7v2 저장소를 삭제하려면 projects.locations.datasets.hl7V2Stores.delete 메서드를 사용합니다.

curl

HL7v2 저장소를 삭제하려면 DELETE 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • 삭제할 HL7v2 저장소의 이름
  • 액세스 토큰

다음 샘플은 curl을 사용하는 DELETE 요청을 보여줍니다.

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID"

요청이 성공하면 서버가 JSON 형식으로 빈 본문 응답을 반환합니다.

{}

PowerShell

HL7v2 저장소를 삭제하려면 DELETE 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • 삭제할 HL7v2 저장소의 이름
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 DELETE 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Delete `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 빈 응답 본문을 반환합니다.

{}

Go

import (
	"context"
	"fmt"
	"io"

	healthcare "google.golang.org/api/healthcare/v1"
)

// deleteHL7V2Store deletes an HL7V2 store.
func deleteHL7V2Store(w io.Writer, projectID, location, datasetID, hl7V2StoreID string) error {
	ctx := context.Background()

	healthcareService, err := healthcare.NewService(ctx)
	if err != nil {
		return fmt.Errorf("healthcare.NewService: %v", err)
	}

	storesService := healthcareService.Projects.Locations.Datasets.Hl7V2Stores

	name := fmt.Sprintf("projects/%s/locations/%s/datasets/%s/hl7V2Stores/%s", projectID, location, datasetID, hl7V2StoreID)

	if _, err := storesService.Delete(name).Do(); err != nil {
		return fmt.Errorf("Delete: %v", err)
	}

	fmt.Fprintf(w, "Deleted HL7V2 store: %q\n", name)
	return nil
}

자바

import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.healthcare.v1.CloudHealthcare;
import com.google.api.services.healthcare.v1.CloudHealthcare.Projects.Locations.Datasets.Hl7V2Stores;
import com.google.api.services.healthcare.v1.CloudHealthcareScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Collections;

public class Hl7v2StoreDelete {
  private static final String HL7v2_NAME = "projects/%s/locations/%s/datasets/%s/hl7V2Stores/%s";
  private static final JsonFactory JSON_FACTORY = new JacksonFactory();
  private static final NetHttpTransport HTTP_TRANSPORT = new NetHttpTransport();

  public static void hl7v2StoreDelete(String hl7v2StoreName) throws IOException {
    // String hl7v2StoreName =
    //    String.format(
    //        HL7v2_NAME, "your-project-id", "your-region-id", "your-dataset-id", "your-hl7v2-id");

    // Initialize the client, which will be used to interact with the service.
    CloudHealthcare client = createClient();

    // Create request and configure any parameters.
    Hl7V2Stores.Delete request =
        client.projects().locations().datasets().hl7V2Stores().delete(hl7v2StoreName);

    // Execute the request and process the results.
    request.execute();
    System.out.println("HL7v2 store deleted.");
  }

  private static CloudHealthcare createClient() throws IOException {
    // Use Application Default Credentials (ADC) to authenticate the requests
    // For more information see https://cloud.google.com/docs/authentication/production
    GoogleCredentials credential =
        GoogleCredentials.getApplicationDefault()
            .createScoped(Collections.singleton(CloudHealthcareScopes.CLOUD_PLATFORM));

    // Create a HttpRequestInitializer, which will provide a baseline configuration to all requests.
    HttpRequestInitializer requestInitializer =
        request -> {
          new HttpCredentialsAdapter(credential).initialize(request);
          request.setConnectTimeout(60000); // 1 minute connect timeout
          request.setReadTimeout(60000); // 1 minute read timeout
        };

    // Build the client for interacting with the service.
    return new CloudHealthcare.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
        .setApplicationName("your-application-name")
        .build();
  }
}

Node.js

const {google} = require('googleapis');
const healthcare = google.healthcare('v1');

const deleteHl7v2Store = async () => {
  const auth = await google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform'],
  });
  google.options({auth});

  // TODO(developer): uncomment these lines before running the sample
  // const cloudRegion = 'us-central1';
  // const projectId = 'adjective-noun-123';
  // const datasetId = 'my-dataset';
  // const hl7v2StoreId = 'my-hl7v2-store';
  const name = `projects/${projectId}/locations/${cloudRegion}/datasets/${datasetId}/hl7V2Stores/${hl7v2StoreId}`;
  const request = {name};

  await healthcare.projects.locations.datasets.hl7V2Stores.delete(request);
  console.log(`Deleted HL7v2 store: ${hl7v2StoreId}`);
};

deleteHl7v2Store();

Python

def delete_hl7v2_store(project_id, cloud_region, dataset_id, hl7v2_store_id):
    """Deletes the specified HL7v2 store."""
    client = get_client()
    hl7v2_store_parent = "projects/{}/locations/{}/datasets/{}".format(
        project_id, cloud_region, dataset_id
    )
    hl7v2_store_name = "{}/hl7V2Stores/{}".format(hl7v2_store_parent, hl7v2_store_id)

    request = (
        client.projects()
        .locations()
        .datasets()
        .hl7V2Stores()
        .delete(name=hl7v2_store_name)
    )

    response = request.execute()
    print("Deleted HL7v2 store: {}".format(hl7v2_store_id))
    return response

다음 단계